The operation of many modern electronic systems requires the repetitive calculation of nonlinear functions. For example, many systems require the comparison of multi-dimensional vectors. In these systems, measured vector quantities are compared with stored vector quantities by calculating the Euclidean distance between the vectors. Many speech recognition systems, for example, operate through comparing vector quantities in this manner.
Prior methods for comparing vector quantities determine the Euclidean distance between the vectors according to the following equation: ##EQU1## Therefore, the distance between vectors A and B is the square root of the sum of n squares where n is the dimension of the vectors A and B. If the distance between the vectors is zero, then the measured vector matches the stored vector.
In digital signal processing applications, this distance is typically calculated by modifying the equation (1) to read as follows: ##EQU2## The first two terms under the radical represent the normalized magnitudes of the two vectors A and B. If the components of the vectors A and B are 8 bits in precision, the squared components will be 16 bits in precision. Therefore, the normalized magnitudes of the vectors A and B, the sum of the squared components, will be on the order of 24 bits in precision for a 256 component vector. The distance is calculated by multiplying each component of the A vector by its corresponding component in the B vector, summing these results in an accumulator, and then subtracting two times the accumulated sum from the sum of the squares of the magnitudes of the two vectors. This operation requires repeated multiplication in a multiplier that is at least 8 bit by 8 bit. This is a slow process and, if the vectors are close enough to be considered a match, the calculated distance between the vectors will be on the order of a two or three bit number. However, to calculate this distance, the sum of the multiplications needs to be computed to the same precision as the sum of the squared components, for example 24 bits. Calculating the distance between two similar vectors requires a large multiplier with precision that is not consistent with the precision of the result. In fact, this implementation will be slow and require considerable power.
Therefore, a need has arisen for a method and system of approximating nonlinear functions which quickly calculates a close approximation of the exact function and is realizable in a small area in an integrated semiconductor device.